12015
Created at : 2025-02-10 21:39
12015
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
vector<int> Numbers(N , 0);
for(int i = 0; i < N; ++i)
{
cin >> Numbers[i];
}
vector<int> LIS;
for(int i = 0; i < Numbers.size(); ++i)
{
int j = lower_bound(LIS.begin(), LIS.end(), Numbers[i]) - LIS.begin();
if(j < LIS.size())
{
LIS[j] = Numbers[i];
}
else
{
LIS.push_back(Numbers[i]);
}
}
cout << LIS.size();
return 0;
}